This invention is in the field of distributed networked electronic systems.
Networked communications among computer systems have been dominated to date by human-oriented communications. Internet communications are a good example of these human-oriented communications, as these are typically carried out by way of computers (including personal computers, tablet computers, smartphones and other mobile devices) actively operated by a human to access or transmit information from and to another such computer or from and to a server.
A recent trend, however, is the increasing deployment of networked communications among computer systems and other electronic devices themselves, absent human initiation or control of the communications. These machine-to-machine (“M2M”) communications are now being carried out over a wide-area network, and the resulting network is now often referred to as the “Internet of Things” (“IoT”). In this context, the nature of the communications can differ significantly from conventional human-oriented Internet communications. The amount of data transmitted from one “machine” to another in a given transmission is often quite small (e.g., streaming video is not often involved), and is often not particularly time-sensitive. As such, the communications requirements for the IoT can be somewhat relaxed. On the other hand, the number of machine-to-machine network nodes in the future is contemplated to be substantially larger than the number of nodes in the human-oriented Internet.
Automated facilities management is an example of a function that is well-suited to being carried out by M2M communications. In this context, a number of sensors can be installed at many various locations of the facility, for example for sensing temperature, humidity, ambient light level, the presence of humans nearby, and other environmental parameters. Other sensors and controllers may be installed on industrial or HVAC equipment that effect the environment. Communications among these sensors and controllers and a host system need only occur at relatively low frequency (e.g., sampling frequency on the order of tenths of Hz, at most), yet if the number of sensors and controllers is sufficiently large, efficient and intelligent control of the facilities environment can be implemented.
Industrial and process control applications, large-scale data gathering for scientific study, and the like are other systems in which M2M (or IoT) networks can provide particular benefit.
In the context of IoT networked communications, automated sensors and their deployment are of particular importance, as it is sensors that obtain the observation data to be communicated among the networked machines. Those observations provide the context for the control of the environment of the sensors by controllers and actuators, which may also be in the M2M network with the sensors. Copending and commonly assigned U.S. patent application Ser. No. 13/433,546, filed Mar. 29, 2012, entitled “Sensor Power Management”, incorporated herein by reference, describes an example of a power management arrangement useful in a sensor node (i.e., one node in the network). Such power management is particularly useful in an M2M implementation of a large number of sensors, for example to conserve sensor battery power during operation.
The number of nodes in some modern installations of M2M networks can exceed one thousand, each of those nodes corresponding to a sensor, controller, or both a sensor and a control function, and operating under software control. In such very large scale networks, the cost of initially programming, and especially of updating, the program code at each of these nodes can be prohibitive. Furthermore, it may not be possible to accurately predict the particular environment or even the function of a particular network node prior to deployment—in many cases, the sensor or control function that becomes desired in practice may not be foreseeable at the time of installation. The functionality and flexibility of conventional M2M sensor networks implemented using current technology is thus somewhat limited.
By way of further background, many mobile telephone devices include processors that implement “virtual machines” to securely execute interpreted platform-independent program code. Examples of such virtual machines include the Dalvik virtual machine in the ANDROID operating system available from Google Inc., and virtual machines for executing JAVA programs and processes. By way of further background, modern embedded processor platforms, such as the ARDUINO microcontroller platform, use compiled executable code (referred to as a “sketch”) that is based on pin abstractions referred to as a “wiring” software library.